<?php
/**
 * 角色模型
 * User: ws
 * Date: 2018/8/4
 * Time: 21:05
 */

namespace app\admin\model;
use think\Model;

class AdminRole   extends Model
{
    // 写入时，将权限ID转成JSON格式
    public function setRoleAuthAttr($value)
    {
        return json_encode($value);
    }



    /**
     * 检查访问权限
     * @param int $id 需要检查的节点ID
     * @author 橘子俊 <364666827@qq.com>
     * @return bool
     */
    public static function checkAuth($id = 0)
    {
        $login = session('admin_user');
        // 超级管理员直接返回true
        if ($login['admin_user_id'] == '1' || $login['admin_role_id'] == '1') {
            return true;
        }
        //print_r($login);die;
        // 获取当前角色的权限明细
        $role_auth = (array)session('role_auth_'.$login['admin_role_id']);
        if (!$role_auth) {
            $map = [];
            $map['admin_role_id'] = $login['admin_role_id'];
            $auth = self::where($map)->value('role_auth');
            if (!$auth) {
                return false;
            }
            $role_auth = json_decode($auth, true);
        }
        if (!$role_auth) return false;
        return in_array($id, $role_auth);
    }



    /**
     * 获取列表
     * $whith_page 0不分页  1分页返回对象  2分页返回数组
     *
     */
    function get_list($where = '',$order = 'admin_role_id desc',$page_size=15,$whith_page=0,$field= '*'){
        if(!$order){ $order = 'admin_role_id desc';}
        if($whith_page == 0){
            $articles = $this->where($where)->field($field)->order($order)->limit($page_size)->select();
            return $articles;
        }
        $articles = $this->where($where)->field($field)->order($order)->paginate($page_size);
        if($whith_page == 1){
            return $articles;
        }
        $articles = $articles->toArray();
        return $articles;
    }
}